package com.itcj.dmp.tags

object TagUtils {

  /**
    * 标签数据转换为map
    *
    * @param str (k1->v1),(k2->v2),(k3->v3)
    * @return
    */
  def tagstr2Map(str: String): Map[String, Double] = {

    // 1. 切割头尾的( )
    val temp1 = str.substring(1, str.length - 1)
    // 2. 以),(进行split
    val arrTemp: Array[String] = temp1.split("\\),\\(")
    // 3. 遍历arr
    var map = Map[String, Double]()
    for (tagStr <- arrTemp) {
      val tempArr2: Array[String] = tagStr.split("->")
      map += (tempArr2(0) -> tempArr2(1).toDouble)
    }

    map
  }


  /**
    * id集合数据转换为map
    *
    * @param str (k1->v1),(k2->v2),(k3->v3)
    * @return
    */
  def idsstr2Map(str: String): Map[String, String] = {

    // 1. 切割头尾的( )
    val temp1 = str.substring(1, str.length - 1)
    // 2. 以),(进行split
    val arrTemp: Array[String] = temp1.split("\\),\\(")
    // 3. 遍历arr
    var map = Map[String, String]()
    for (tagStr <- arrTemp) {
      val tempArr2: Array[String] = tagStr.split("->")
      map += (tempArr2(0) -> tempArr2(1))
    }

    map
  }


  /**
    * Map类型的数据,会以(k1->v1),(k2->v2),(k3->v3)转换为字符
    * @param tagMap
    * @return
    */
  def map2Str(tagMap: collection.Map[String, _]): String = {
    tagMap.map(item => "(" + item._1 + "->" + item._2 + ")").mkString(",")
  }

}

